home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / wais / waisgate / irhash.h < prev    next >
C/C++ Source or Header  |  1995-05-09  |  2KB  |  65 lines

  1. /* WIDE AREA INFORMATION SERVER SOFTWARE:
  2.    No guarantees or restrictions.  See the readme file for the full standard
  3.    disclaimer.
  4.  
  5.    Brewster@think.com
  6. */
  7.  
  8. /* Include file for the irhash.c file.
  9.    Implements the building functions in irext.h */
  10.  
  11. #ifndef IRHASH_H
  12. #define IRHASH_H
  13.  
  14. #include "cdialect.h"
  15. #include "cutil.h"
  16. #include "irlex.h"
  17. #include "hash.h"
  18. #include "irlex.h" /* for MAX_WORD_LENGTH */
  19.  
  20. /* the amount of memory for word occurances (bytes) */
  21. #define WORD_MEMORY_INIT_BLOCK_SIZE 10
  22.  
  23. /* this is the maximum number of occurances that will be stored in the 
  24.  * disk table.  The number of occurances will reflect the total number in
  25.  * all files.  The theory is that if a word is very common, then it
  26.  * is not very useful in descriminating between files.  Also, if it
  27.  * is very common, then it takes up alot of space.
  28.  * Maybe this should be dependent on the number of documents indexed.
  29.  * Therefore if a word is in every document, then it probably does not mean
  30.  * much.  
  31.  * In increasing this, it may not keep all the references in the 
  32.  * inverted file because the max length of an index block is governed
  33.  * by a size that can be represented in INDEX_BLOCK_SIZE_SIZE bytes.
  34.  */
  35. #define MAX_OCCURANCES 20000L
  36.  
  37. /* this is a flag to be put in the number_of_occurances field of a
  38. word_entry so that it is always greater than the limit and no words will be
  39. collected. */ 
  40. #define STOP_WORD_FLAG 0x40000000
  41.  
  42. #ifdef __cplusplus
  43. /* declare these as C style functions */
  44. extern "C"
  45.     {
  46. #endif /* def __cplusplus */
  47.  
  48. unsigned char *make_word_occurrance_block _AP((long size));
  49.  
  50. void free_word_occurance_block _AP((unsigned char *block));
  51.  
  52. void flush_word_occurance_buffers _AP((void));
  53.  
  54. void gc_word_occurance_buffers _AP((hashtable * the_word_memory_hashtable));
  55.  
  56. void add_stop_words _AP((hashtable *the_word_memory_hashtable));
  57.  
  58. long write_bytes_to_memory _AP((long value,long size,unsigned char* ptr));
  59.  
  60. #ifdef __cplusplus
  61.     }
  62. #endif /* def __cplusplus */
  63.  
  64. #endif /* nded IRHASH_H */
  65.